from langchain.output_parsers import StructuredOutputParser
from langchain_core.prompts import PromptTemplate
from langchain_openai import OpenAI

# 大模型
llm = OpenAI(
    api_key="sk-VowKQBUMIkSND8WScNJtDLqf3FyqWHQ43LMVUXH1m6GZaopA",
    base_url="https://ai.nengyongai.cn/v1"
)


def test1():
    #
    schema = {
        'summary': '事件的简要描述',
        'impact': '事件的影响',
        'evaluation': '历史评价'
    }
    parser = StructuredOutputParser(schema=schema)

    # 提示词
    prompt = PromptTemplate(
        template='描述以下事件，返回结构化json数据: \n {format_instructions} \n 事件：{event}',
        input_variables={'event'},
        partial_variables={'format_instructions': parser.get_format_instructions()}
    )

    #
    response = llm(prompt.format(event='数字革命'))
    print(parser.parse(response))
